接收机控制和处理功能分为以下部分
- 捕获引擎中断服务函数(AE ISR, Acquisition Engine Interrupt Service Routines):捕获引擎配置和捕获判决
- 跟踪引擎中断服务函数(TE ISR, Tracking Engine Interrupt Service Routines):控制跟踪引擎完成载波跟踪与伪码跟踪
- 基带控制任务线程(Baseband Tasks):进行比特同步、导航电文码流解码、通道失锁和重捕判断等任务
总体流程:
操作系统会首先执行第一次的搜星任务,执行过程由捕获引擎的中断推动。搜星完成后,处理器会请求一个立刻的request中断,并在中断内完成捕获转牵引的任务。
在跟踪通道开始正常工作后,后续的执行均由跟踪引擎的中断推动,当中断发生时,跟踪引擎硬件挂起,在中断函数内完成statebuffer的读写,并将不需要访问硬件且不紧急的任务加入到任务队列中等待退出中断后执行,中断退出后跟踪引擎恢复运行。当产生coherent sum中断时,处理器处理相干累加值,完成环路更新并收集原始电文比特;当产生measurement中断时,处理器读取观测量相关的寄存器值,并将处理观测量的任务(MeasProcTask)加入到PostMeasTask任务队列中。在satellite coordinate related functions()中,将完成帧同步和帧解析、生成原始观测量,并进行定位解算。
通过硬件寄存器配置对接收机通道的载波发生器和伪码发生器进行实时调整
载波环与处理器
载波环路鉴别器和载波环路滤波器基于硬件提供的相关值进行处理,得到载波数控振荡器的调整量。
码环与处理器
码环输出相关值
位置解算
先计算卫星的空间位置,参见如何计算卫星的空间位置
位置解算的步骤如下:
- 首先,对原始观测量进行筛选,将观测量有效且有有效星历的卫星放入指针数组,并且同一卫星系统的观测量放在一起;
- 第二步是对于筛选出的卫星计算卫星的相应信息,包括通过发射时刻计算卫星位置,根据卫星位置和接收机位置计算卫星仰角和方位角。同时与星历相关的卫星钟差改正和相对论改正也在这一步完成;
- 第三步是对原始观测量进行过滤,包括剔除重复的观测量、剔除仰角和 CN0 小于阈值的观测量等;
- 第四步是计算卫星的对流层、电离层改正,并且合并钟差及相对论改正后对原始伪距进行修正,得到修正后的伪距;
- 第五步是根据观测量确定定位方式,如 2D 或 3D 的最小二乘定位、Kalman 滤波定位或 5 星定位等;
- 第六步是根据定位方式调用相应的位置计算函数进行位置解算;
- 最后将解算的结果赋值给接收机定位结果并设置相应的标志。